<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>基于ajax构造HTTP的POST请求</title>
</head>
<body>
    <!-- form 表单构造 post 请求, body 格式为 x-www-form-urlencoded -->
    <!-- 相对路径 -->
    <form action="postParameterServlet" method="post">
        <input type="text" name="userId">
        <input type="text" name="classId"> 
        <input type="submit" value="提交">
    </form>


    <!-- 构造一个 body 格式为 json 的请求， 使用 ajax -->
    <input type="text" id="userId">
    <input type="text" id="classId">
    <input type="button" id="submit" value="提交json请求">
    <div id="data"><div>

    <script>
        let userIdInput = document.querySelector('#userId');
        let classIdInput = document.querySelector('#classId');
        let button = document.querySelector('#submit');
        button.onclick = function() {
            $.ajax({
                type: 'post',
                url: 'postJson',
                // 需手动设置， 默认是x-www-form-urlencoded
                contentType: 'application/json',
                // 构造一个post 请求时， 
                // ajax 可以使用 data，来构造 body
                // 构造一个格式为 json 的 body
                data: JSON.stringify({
                    userId: userIdInput.value,
                    classId: classIdInput.value
                }),
                success: function(body) {
                    console.log(body);
                    jQuery('#data').html("<h3>" + body + "</h3>")
                }
            })
        }
    </script>

    <!-- 引入 jquery -->
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.4/jquery.min.js"></script>
    <script>
        // ajax 构造 post 请求
        $.ajax({
            type: 'post', // get, post, put, delete
            // 这里 url 不加 / , 是相对路径
            // 与 WebServlet 的注解不同(这个必须加, 与相对/绝对路径无关)
            url: 'method',
            success: function(body) {
                // 将响应内容打印到控制台
                console.log(body);
            }
        });
    </script>
</body>
</html>   